<script>
Ext.onReady(function(){
 var terbilang = function(bilangan) {

 bilangan    = String(bilangan);
 var angka   = new Array('0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0');
 var kata    = new Array('','Satu','Dua','Tiga','Empat','Lima','Enam','Tujuh','Delapan','Sembilan');
 var tingkat = new Array('','Ribu','Juta','Milyar','Triliun');

 var panjang_bilangan = bilangan.length;

 /* pengujian panjang bilangan */
 if (panjang_bilangan > 15) {
   kaLimat = "Diluar Batas";
   return kaLimat;
 }

 /* mengambil angka-angka yang ada dalam bilangan, dimasukkan ke dalam array */
 for (i = 1; i <= panjang_bilangan; i++) {
   angka[i] = bilangan.substr(-(i),1);
 }

 i = 1;
 j = 0;
 kaLimat = "";


 /* mulai proses iterasi terhadap array angka */
 while (i <= panjang_bilangan) {

   subkaLimat = "";
   kata1 = "";
   kata2 = "";
   kata3 = "";

   /* untuk Ratusan */
   if (angka[i+2] != "0") {
     if (angka[i+2] == "1") {
       kata1 = "Seratus";
     } else {
       kata1 = kata[angka[i+2]] + " Ratus";
     }
   }

   /* untuk Puluhan atau Belasan */
   if (angka[i+1] != "0") {
     if (angka[i+1] == "1") {
       if (angka[i] == "0") {
         kata2 = "Sepuluh";
       } else if (angka[i] == "1") {
         kata2 = "Sebelas";
       } else {
         kata2 = kata[angka[i]] + " Belas";
       }
     } else {
       kata2 = kata[angka[i+1]] + " Puluh";
     }
   }

   /* untuk Satuan */
   if (angka[i] != "0") {
     if (angka[i+1] != "1") {
       kata3 = kata[angka[i]];
     }
   }

   /* pengujian angka apakah tidak nol semua, lalu ditambahkan tingkat */
   if ((angka[i] != "0") || (angka[i+1] != "0") || (angka[i+2] != "0")) {
     subkaLimat = kata1+" "+kata2+" "+kata3+" "+tingkat[j]+" ";
   }

   /* gabungkan variabe sub kaLimat (untuk Satu blok 3 angka) ke variabel kaLimat */
   kaLimat = subkaLimat + kaLimat;
   i = i + 3;
   j = j + 1;

 }

 /* mengganti Satu Ribu jadi Seribu jika diperlukan */
 if ((angka[5] == "0") && (angka[6] == "0")) {
   kaLimat = kaLimat.replace("Satu Ribu","Seribu");
 }

 return kaLimat + "Rupiah";
}

	pengajuandet_id = new Ext.form.TextField({
		fieldLabel: 'pengajuandet_id',
		name: 'pengajuandet_id',
		id : 'pengajuandet_id',
		width:'65%',
		hidden : true
	}); 
	kwitansi_prog_store = new Ext.data.Store({
		id: 'kwitansi_prog_store',
		proxy: new Ext.data.HttpProxy({
			url: 'c_public_function',
			method: 'POST'
		}),
		baseParams:{task: "GET_PROGKEG_PENGAJUAN", start:0, limit: 15},
		reader: new Ext.data.JsonReader({
			root: 'results',
			totalProperty: 'total',
			id: 'anggaran_id'
		},[
			{name: 'anggaran_id', type: 'int', mapping: 'anggaran_id'},
			{name: 'anggaran_kd1', type: 'varchar', mapping: 'anggaran_kd1'},
			{name: 'anggaran_kegiatan', type: 'string', mapping: 'anggaran_kegiatan'}
		]),
		sortInfo:{field: 'anggaran_id', direction: "DESC"}
	});
	
	kwitansi_akun_store = new Ext.data.Store({
		id: 'kwitansi_akun_store',
		proxy: new Ext.data.HttpProxy({
			url: 'c_public_function',
			method: 'POST'
		}),
		baseParams:{task: "GET_AKUN", start:0, limit: 15},
		reader: new Ext.data.JsonReader({
			root: 'results',
			totalProperty: 'total',
			id: 'anggaran_id'
		},[
			{name: 'anggaran_id', type: 'int', mapping: 'anggaran_id'},
			{name: 'pengajuandet_id', type: 'int', mapping: 'pengajuandet_id'},
			{name: 'anggaran_kegiatan', type: 'string', mapping: 'anggaran_kegiatan'}
		]),
		sortInfo:{field: 'anggaran_id', direction: "DESC"}
	});
	
	var kwitansi_pro_keg = new  Ext.form.ComboBox({
		store : kwitansi_prog_store,
		mode: 'remote',
		fieldLabel: 'Prog / Keg <font color=red>*</font> ',
		id : 'kwitansi_pro_keg',
		name: 'kwitansi_pro_keg',
		displayField:'anggaran_kegiatan',
		valueField: 'anggaran_id',
		editable: true,
		allowBlank : false,
		anchor: '95%',
		pageSize: 15,
		triggerAction: 'all'
	});
	
	var Akun_combo = new  Ext.form.ComboBox({
		store : kwitansi_akun_store,
		mode: 'remote',
		fieldLabel: 'Akun <font color=red>*</font> ',
		allowBlank : false,
		id : 'kwitansi_akun',
		name: 'kwitansi_akun',
		displayField:'anggaran_kegiatan',
		valueField: 'anggaran_id',
		editable: true,
		anchor: '95%',
		pageSize: 15,
		triggerAction: 'all'
	});
		
	kwitansi_pro_keg.on('select',function(a,b,c){
		kwitansi_akun_store.setBaseParam('kode',b.data.anggaran_kd1);
		kwitansi_akun_store.load();
		Akun_combo.reset();
	});
	Akun_combo.on('select',function(a,b,c){
		pengajuandet_id.setValue(b.data.pengajuandet_id);
	});
	sudah_diterima = new Ext.form.TextField({
					fieldLabel: 'Sudah terima dari ',
					name: 'kwitansi_terima',
					id : 'kwitansi_terima',
					width:'95%',
					disabled:true,
					value: 'Kuasa Pengguna Anggaran Institut Teknologi Sepuluh Nopember'
	}); 
	
	terbilang_field = new Ext.form.TextField({
					fieldLabel: 'Terbilang',
					id  : 'kwitansi_terbilang_field',
					name: 'kwitansi_terbilang_field',
					width:'95%',
					disabled:true,
					value: '',
					style: 'font-weight:bold;'	
	});
	
	jumlah_diterima = new Ext.form.NumberField({
		fieldLabel: 'Jumlah Uang <font color=red>*</font> ',
		name: 'kwitansi_jumlah_uang',
		allowBlank : false,
		width:'95%',
		id  : 'kwitansi_jumlah_uang',
		enableKeyEvents  : true
	});

	jumlah_diterima.on('keyup',function(a,b,c){
		terbilang_field.setValue(terbilang(jumlah_diterima.getValue()));
	});
	
	judul = new Ext.form.Label({
		autoHeight:true,
		fieldLabel:'ENTRY KWITANSI',
		style:'font-weight:bold'
	});
	var form_kwitansi = new Ext.FormPanel({
		labelWidth:135,
		bodyStyle : 'border-radius:10px;padding:10px;border: 1px solid #DEDEDE ',
		width: '100%',
		labelAlign : 'right',
		fieldDefaults: {
			msgTarget: 'side',
			labelWidth: 600
		},
		items: [{
			xtype:'form',
			autoHeight:true,	
			// style : 'float : right; padding:18px',
			width : 430,
			align : 'right',		
			frame:false,
			border:false,
			defaultType: 'textfield',
			items :[
				{
					xtype : 'datefield',
					format : 'd F Y',
					fieldLabel: 'Tanggal',
					width : 270,
					allowBlank : false,
					name: 'kwitansi_tanggal',
					id : 'kwitansi_tanggal'
				},
				{
					fieldLabel: 'Nomor Bukti',
					name: 'kwitansi_nomor_bukti',
					width : 270,
					allowBlank : false,
					id  : 'kwitansi_nomor_bukti'
				},kwitansi_pro_keg,Akun_combo
			]
		},{
			xtype : 'component',
			html : '<p><br clear=ALL>&nbsp;</p>'
		},{
			xtype:'form',
			autoHeight:true,
			width : "100%",
			align : 'right',		
			frame:false,
			border :false,
			defaultType: 'textfield',
			items :[
				sudah_diterima,
				jumlah_diterima,
				terbilang_field,{
					xtype: 'htmleditor',
					fieldLabel: 'Untuk Pembayaran ',
					id  : 'kwitansi_pembayaran',
					name: 'kwitansi_pembayaran'
				}
			]
		}		
		],

		buttons: [
		{
			text: 'Cetak Kwitansi',
			handler : function(){
				// console.log(Ext.getCmp('kwitansi_pro_keg').getRawValue());
				kwitansi_date	= Ext.getCmp('kwitansi_tanggal').getValue();
				kwitansi_no		= Ext.getCmp('kwitansi_nomor_bukti').getValue();
				prog_keg		= Ext.getCmp('kwitansi_pro_keg').getRawValue();
				akun			= Ext.getCmp('kwitansi_akun').getRawValue();
				jumlah			= Ext.getCmp('kwitansi_jumlah_uang').getValue();
				terbilang		= Ext.getCmp('kwitansi_terbilang_field').getValue();
				untuk			= Ext.getCmp('kwitansi_pembayaran').getValue();
				Ext.Ajax.request({
					waitMsg	: 'Mohon tunggu ....',
					url		: 'c_kwitansi/cetak',
					type    : 'POST',
					params	: {
								kwitansi_date : kwitansi_date,
								kwitansi_no   : kwitansi_no,
								prog_keg      : prog_keg,
								akun          : akun,
								jumlah        : jumlah,
								terbilang     : terbilang,
								untuk 		  : untuk
						},
					success : function(response){
						window.open("<?php echo base_url('report/print/kwitansi.html');?>");
					}
				});
				
			}
		},{
			text: 'Simpan',
			handler : function(){
				if (form_kwitansi.form.isValid() && Ext.getCmp("kwitansi_pembayaran").isDirty()){
					task = 'SAVE';
					kwitansi_date = Ext.getCmp('kwitansi_tanggal').getValue();
					t_pengajuandet_id =  pengajuandet_id.getValue();
					kwitansi_value = jumlah_diterima.getValue();
					kwitansi_ket = Ext.getCmp('kwitansi_pembayaran').getValue();
					kwitansi_dari = sudah_diterima.getValue();
					Ext.Ajax.request({  
						waitMsg: 'Mohon tunggu...',
						url: 'c_kwitansi',
						params: {
								task   : task,
								kwitansi_date : kwitansi_date,
								t_pengajuandet_id : t_pengajuandet_id,
								kwitansi_value : kwitansi_value,
								kwitansi_ket : kwitansi_ket,
								kwitansi_dari : kwitansi_dari
						}, 
						success: function(response){             
							var result = eval(response.responseText);
							switch(result){
								case 1:
									form_kwitansi.getForm().reset();
									pengajuandet_id.setValue('');
									Ext.MessageBox.alert('Simpan Berhasil','Data berhasil disimpan');
									break;
								default:
									Ext.MessageBox.show({
									   title: 'Warning',
									   msg: 'Data tidak bisa disimpan',
									   buttons: Ext.MessageBox.OK,
									   animEl: 'save',
									   icon: Ext.MessageBox.WARNING
									});
								break;
							}        
						},
						failure: function(response){
							var result=response.responseText;
							Ext.MessageBox.show({
										   title: 'Error',
										   msg: 'Tidak bisa terhubung dengan database !.',
										   buttons: Ext.MessageBox.OK,
										   animEl: 'database',
										   icon: Ext.MessageBox.ERROR
							});	
						}                      
					});
				}else{
					// message form belum sempurna
					Ext.MessageBox.show({
					   title: 'Warning',
					   msg: 'Masih ada form yang belum terisi !.',
					   buttons: Ext.MessageBox.OK,
					   animEl: 'form',
					   icon: Ext.MessageBox.WARNING
					});	
				}
			}
		}]
	});  

	form_kwitansi.render('entry_kwitansi');
});
</script>
	<div class="page-header color1"><h6>ENTRY KWITANSI</h6></div>
	<div id="entry_kwitansi">
</div>